home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1997 September / Macworld (1997-09).dmg / Serious Software / Cherwell Scientific Demos / pro Fit / pro Fit 5.0 demo (fpu).sea / pro Fit 5.0 demo (fpu) / External Modules / External modules sources / C / Contour plotting / ContourPlotter.h < prev    next >
Text File  |  1996-03-15  |  1KB  |  45 lines

  1. #ifndef __CONTOUR_PLOTTER__
  2. #define __CONTOUR_PLOTTER__
  3.  
  4.  
  5.  
  6.  
  7. typedef struct PrivatePlottingData PlottingData;
  8.  
  9. typedef Boolean (*FunctionPtr)(double x1, double x2, double* const x3, void* param);
  10.     // the function to plot. Is called at each point x1, x2 of the matrix
  11.     // and must return the value x3
  12.     // returns false if x3 is invalid
  13.     // param: the parameter passed to CalculateContourMatrix
  14.  
  15.  
  16. PlottingData* InitContourPlotter(long nrRows, long nrCols,
  17.         double x1Min, double x1Max, double x2Min, double x2Max);
  18.     // call this routine to initialize the contour plotter for 
  19.     // working on a matrix of size nrRows, nrCols
  20.     // x1Min, x1Max, etc. correspond to the numerical values of the bounds of the matrix
  21.     // returns nil if not enough memory
  22.     // if InitContour is successful, it returns the above defined struct.
  23.  
  24.  
  25. void DisposeContourPlotter(PlottingData* p);
  26.     // deallocates all memory allocated by InitContourPlotter    
  27.     // does nothing if p==nil
  28.  
  29.  
  30. Boolean CalculateContourMatrix(FunctionPtr func, void* param, PlottingData* p);
  31.     // after having called InitContourPlotter, call this routine to initialize
  32.     // the plotting matrix.
  33.     // func: a function that returns x3 for each matrix point x1, x2
  34.     // param is passed to func
  35.  
  36.  
  37. Boolean DrawContour(double level, PlottingData* p);
  38.     // after having called CalculateContourMatrix, call this routine for all levels
  39.     // (i.e. x3-values) where you want to have a contour line
  40.     // Returns false if execution must be stopped
  41.  
  42.  
  43.  
  44. #endif
  45.